package com.nnnu.orange.service;

import com.nnnu.orange.pojo.dto.BorrowingDto;
import com.nnnu.orange.pojo.dto.BorrowingQueryDto2;
import com.nnnu.orange.pojo.dto.ReturnBookDto;
import com.nnnu.orange.pojo.entity.Borrowings;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nnnu.orange.pojo.vo.BorrowingVO;
import com.nnnu.orange.result.PageResult;

import java.util.List;

/**
 * <p>
 * 记录用户借阅图书的信息 服务类
 * </p>
 *
 * @author zk
 * @since 2024-11-07
 */
public interface IBorrowingsService extends IService<Borrowings> {

    /**
     * 分页查询借阅记录数据
     *
     * @param queryDto dto
     * @return 分页后的数据
     */
    PageResult<?> pageList(BorrowingQueryDto2 queryDto);

    /**
     * 管理员获取借阅详细信息
     *
     * @param borrowingId 借阅唯一id
     * @return 借阅实体
     */
    BorrowingVO findById(Integer borrowingId);

    /**
     * 批量删除借阅记录
     *
     * @param ids id列表
     */
    void deleteBatch(List<Integer> ids);

    /**
     * 用户借阅图书
     *
     * @param borrowingDto dto
     */
    void userBorrowing(BorrowingDto borrowingDto);

    /**
     * 用户归还书籍
     *
     * @param returnBookDto 借阅id
     */
    void returnBook(ReturnBookDto returnBookDto);
}
